<?php

class Rubros extends BaseRubros {

    public function __toString() {
        return $this->getRubNombre();
    }

    public function getRubro() {
        $rubro = RubrosPeer::retrieveByPK($this->getRubRubro());

        if (!empty($rubro)) {
            return $rubro->getRubNombre();
        }
    }

    /**
     * Comprueba si el rubro existe
     * @param string $name
     * @param int $id
     * @return bool or Rubros object
     * @author Maximiliano Vicente
     */
    public function rubroExiste($name, $id=null) {

        $c = new Criteria();
        //Si id esta seteado, entonces se trata de una edicion
        if (!empty($id)) {
            $crit1 = $c->getNewCriterion(RubrosPeer::RUB_NOMBRE, $name, Criteria::EQUAL);
            $crit2 = $c->getNewCriterion(RubrosPeer::RUB_ID, $id, Criteria::NOT_EQUAL);
            $crit1->addAnd($crit2);
            $c->add($crit1);
        } else {
            if (!empty($name)) {
                $c->add(RubrosPeer::RUB_NOMBRE, $name, Criteria::EQUAL);
            }
        }

        $rubro = RubrosPeer::doSelect($c);

        if (!empty($rubro)) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * Compueba si existen relaciones para cada rubro.
     * @return bool
     */
    /*public function haveRelations() {

        try {
            $id = $this->getRubId();

            //Comprobar si no es utilizado por otros rubros
            $c = new Criteria();
            $c->add(RubrosPeer::RUB_RUBRO, $id, Criteria::EQUAL);
            $rubros = RubrosPeer::doSelect($c);

            //Comprobar si no es utilizado por otros productos
            $c2 = new Criteria();
            $c2->add(ProductosPeer::PRO_RUBRO, $id, Criteria::EQUAL);
            $productos = ProductosPeer::doSelect($c2);

            if (empty($rubros) && empty($productos)) {
                return false;
            } else {
                return true;
            }
        } catch (sfException $e) {
            echo $e->printStackTrace();
        }
    }
     * 
     */

    public function getNroVentasPorRubro() {
        $criteria = new Criteria();
        $criteria->add(ProductosPeer::PRO_RUBRO, $this->getRubId());

        $nroVentas = DetalleVentasPeer::doCount($criteria);
        return $nroVentas;
    }

}
